package com.sg.dto.biz.app.res;

import com.sg.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @desc QueryEvaObjTargetCycleReportDetailRespDto
 * @使用场景
 */
@Data
public class QueryEvaObjTargetCycleReportDetailRespDto
        extends BaseDto
        implements Serializable {

    /**
     * 被评对象目标周期ID
     */
    @ApiModelProperty("被评对象目标周期ID")
    private String evaObjTargetCycleId;

    /**
     * 被评对象目标周期标识
     */
    @ApiModelProperty("被评对象目标周期标识")
    private String evaObjTargetCycleCode;

    /**
     * 上级被评对象目标周期标识
     */
    @ApiModelProperty("上级被评对象目标周期标识")
    private String parentEvaObjTargetCycleId;

    /**
     * 被评对象内容表主键ID
     */
    @ApiModelProperty("被评对象内容表主键ID")
    private String evaObjEntityId;

    /**
     * 被评对象类型编码 EVA_PORTRAIT:评价画像 EVA_OBJECT:评价对象 FLEVEL_OBJ_TASK_DUTY_DEPT:一级部门目标任务责任部门 OKR_SUBJECT_DEPT:OKR责任主体部门 OKR_SUBJECT_PERSONAL:OKR责任主体个人
     */
    @ApiModelProperty("被评对象类型编码")
    private String evaObjTypeCode;

    /**
     * 关联目标内容ID
     */
    @ApiModelProperty("关联目标内容ID")
    private String targetCycleContentId;

    /**
     * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
     */
    @ApiModelProperty("关联目标内容类型编码")
    private String targetCycleContentTypeCode;

    /**
     * 父子中传值分析的子周期周期ID
     */
    @ApiModelProperty("父子中传值分析的子周期周期ID")
    private String subCycleId;

    /**
     * 是否父周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否父周期")
    private String isParentCycle;

    /**
     * 是否中期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否中期")
    private String isMetaphase;

    /**
     * 是否子周期 TRUE:是 FALSE:否
     */
    @ApiModelProperty("是否子周期")
    private String isSubCycle;

    /**
     * 工作周期是否同体（父子） TRUE:是 FALSE:否
     */
    @ApiModelProperty("工作周期是否同体（父子）")
    private String workCycleIsSame;

    /**
     * 周期名称
     */
    @ApiModelProperty("执行周期周期名称")
    private String cycleStandardName;

    /**
     * 周期类型实例简称
     */
    @ApiModelProperty("执行周期周期类型实例简称")
    private String cycleNumberShortName;

    /**
     * 周期ID
     */
    @ApiModelProperty("目标周期周期ID")
    private String cycleId;

    /**
     * 目标周期名称
     */
    @ApiModelProperty("目标周期名称")
    private String targetCycleName;

    /**
     * 目标周期简称
     */
    @ApiModelProperty("目标周期简称")
    private String cyclelAlias;

    /**
     * 目标计划结束时间
     */
    @ApiModelProperty("目标计划结束时间")
    private Date cycleEndTime;

    /**
     * 成果汇报结束时间
     */
    @ApiModelProperty("成果汇报结束时间")
    private Date targetActualEndtTime;

    /**
     * 汇报通过时间
     */
    @ApiModelProperty("汇报通过时间")
    private Date reportUpdateTime;

    /**
     * 虚拟组织成员就职记录ID
     */
    @ApiModelProperty("负责人就职记录ID")
    private String virtualOrgInductionRecordId;

    /**
     * 个人账号
     */
    @ApiModelProperty("负责人个人账号ID")
    private String userId;

    /**
     * 组内职务名称
     */
    @ApiModelProperty("负责人职务名称")
    private String virtualOrganizationPosition;

    /**
     * 虚拟组织下部门ID
     */
    @ApiModelProperty("牵头部门ID")
    private String deptId;

    /**
     * 组织内部门身份名称
     */
    @ApiModelProperty("牵头部门身份名称")
    private String virtualOrgDeptStatus;

    /**
     * 目标达成情况
     */
    @ApiModelProperty("目标达成情况")
    private String targetReached;

    /**
     * 权重
     */
    @ApiModelProperty("权重")
    private Double weightValue;

    /**
     * 权重分值
     */
    @ApiModelProperty("权重分值")
    private Double weightScore;

    /**
     * 总时长
     */
    @ApiModelProperty("总时长")
    private Long totalLength;

    /**
     * 剩余天数
     */
    @ApiModelProperty("剩余天数")
    private Long delaySurplusLength;

    /**
     * 完成偏离时长
     */
    @ApiModelProperty("完成偏离时长")
    private Long deviateLength;

    /**
     * 展示目标值
     */
    @ApiModelProperty("展示目标值")
    private Double showTargetValue;

    /**
     * 诊断值
     */
    @ApiModelProperty("诊断值")
    private Double targetDiagnosticValue;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String targetValueType;

    /**
     * 冗余单位
     */
    @ApiModelProperty("冗余单位")
    private String unit;

    /**
     * 实际值（数值）
     */
    @ApiModelProperty("实际值（数值）")
    private Double actualValue;

    /**
     * 实际值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("实际值单位")
    private String actualValueUnit;

    /**
     * 较上次目标变化值
     */
    @ApiModelProperty("较上次目标变化值")
    private Double changeFromLastTarget;

    /**
     * 较上次目标变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("较上次目标变化值单位")
    private String changeFromLastTargetUnit;

    /**
     * 较上次目标增降幅
     */
    @ApiModelProperty("较上次目标增降幅")
    private Double fromLastTargetLiftRatio;

    /**
     * 较上次目标增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("较上次目标增降幅单位")
    private String fromLastTargetLiftRatioUnit;

    /**
     * 进度值（数值）
     */
    @ApiModelProperty("进度值（数值）")
    private Double progressValue;

    /**
     * 进度值单位
     */
    @ApiModelProperty("进度值单位")
    private String progressValueUnit;

    /**
     * 进度较上次变化值
     */
    @ApiModelProperty("进度较上次变化值")
    private Double fromLastProgressValue;

    /**
     * 进度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("进度较上次变化值单位")
    private String fromLastProgressValueUnit;

    /**
     * 进度较上次增降幅
     */
    @ApiModelProperty("进度较上次增降幅")
    private Double progressFromLastRatio;

    /**
     * 进度较上次增降幅单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("进度较上次增降幅单位")
    private String progressFromLastRatioUnit;

    /**
     * 达成度
     */
    @ApiModelProperty("达成度")
    private Double reach;

    /**
     * 达成度单位
     */
    @ApiModelProperty("达成度单位")
    private String reachUnit;

    /**
     * 达成度较上次变化值
     */
    @ApiModelProperty("达成度较上次变化值")
    private Double fromLastReach;

    /**
     * 达成度较上次变化值单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("达成度较上次变化值单位")
    private String fromLastReachUnit;

    /**
     * 达成度较上次增降幅
     */
    @ApiModelProperty("达成度较上次增降幅")
    private Double actualFromLastTimeRatio;

    /**
     * 达成度较上次增降福单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("达成度较上次增降福单位")
    private String actualFromLastTimeRatioUnit;

    /**
     * 汇报得分（文本）
     */
    @ApiModelProperty("汇报得分（文本）")
    private String reportScore;

    /**
     * 汇报得分单位 TIMES:次 DOOR:门 PART:部 SET:套 INDIVIDUAL:个 YUAN:元 NNT:人 PIECE:篇 TERM:项 FEN:分 WAN_YUAN:万元 PERCENT:1111百分率 PORTION:份 %:%
     */
    @ApiModelProperty("汇报得分单位")
    private String reportScoreUnit;

    /**
     * 汇报得分较上次增降幅（数值）
     */
    @ApiModelProperty("汇报得分较上次增降幅（数值）")
    private Double fromLastRatioReportScore;

    /**
     * 汇报得分较上次增降幅单位
     */
    @ApiModelProperty("汇报得分较上次增降幅单位")
    private String fromLastRatioReportScoreUnit;

    /**
     * 实际得分等级
     */
    @ApiModelProperty("实际得分等级")
    private String realTimeScoreLevel;

    /**
     * 进度指标是否允许重复安排
     */
    @ApiModelProperty("进度指标是否允许重复安排")
    private String progressObjIsRedoArrange;

}
